package com.zz.ecommerce.common.bean.qdc.db;

import com.zz.bundles.cache.dict.DictTag;
import com.zz.ecommerce.common.constants.DictConstants;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 申报青岛海关货物信息保存表
 */
public class TGoodsListQdc implements Serializable {

    private static final long serialVersionUID = 733336247224664767L;

    private String id;

    /**
     * 序号
     */
    private String gNo;

    /**
     * 商品名称
     */
    private String gName;

    /**
     * 商品编码 一般进口、一般出口用商品名录；保税出口用HS编码
     */
    private String codeTs;

    /**
     * 商品描述
     */
    private String gDesc;

    /**
     * 单价 成交价格
     */
    private BigDecimal price;

    /**
     * 数量
     */
    private BigDecimal gNum;

    /**
     * 成交价格
     */
    private String gUnit;

    /**
     * 币制
     */
    private String currCode;

    /**
     * 运保费
     */
    private BigDecimal freight;

    /**
     * 运费币制
     */
    private String fCurrCode;

    /**
     * 订单号
     */
    private String orderId;

    /**
     * 电商平台代码
     */
    private String ebPlatId;

    /**
     * 规格型号 品牌、商品描述、规格等
     */
    private String gModel;

    /**
     * 总价 单价*数量
     */
    private BigDecimal totalPrice;

    /**
     * 法定数量 进口不填/出口选填
     */
    private BigDecimal qty1;

    /**
     * 法定单位 进口不填/出口选填
     */
    private String unit1;

    /**
     * 品牌 进口不填/出口选填
     */
    private String tradeMark;

    /**
     * 原产国/目的国
     */
    private String originCountry;

    /**
     * 用途 进口不填/出口选填
     */
    private String useTo;

    /**
     * 征免方式 进口不填/出口选填
     */
    private String dutyMode;

    /**
     * 税款 进口选填/出口不填
     */
    private BigDecimal taxPayment;

    /**
     * 税率 进口选填/出口不填
     */
    private BigDecimal taxRate;

    /**
     * 备注
     */
    private String note;

    /**
     * 业务表主键，根据此字段关联需要显示的商品信息
     */
    private String relatedId;

    /**
     * 料件成品标识    G_TYPE             a1
     * E成品、I料件
     * 保税必填
     */
    protected String gType;

    /**
     * 项号 EMS_G_NO  n..16
     * 对应账册的商品项号
     * 保税必填
     */
    protected String emsGNo;


    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    /**
     * @return 序号
     */
    public String getgNo() {
        return gNo;
    }

    /**
     * @param gNo 序号
     */
    public void setgNo(String gNo) {
        this.gNo = gNo;
    }

    /**
     * @return 商品名称
     */
    public String getgName() {
        return gName;
    }

    /**
     * @param gName 商品名称
     */
    public void setgName(String gName) {
        this.gName = gName;
    }

    /**
     * @return 商品编码 一般进口、一般出口用商品名录；保税出口用HS编码
     */
    public String getCodeTs() {
        return codeTs;
    }

    /**
     * @param codeTs 商品编码 一般进口、一般出口用商品名录；保税出口用HS编码
     */
    public void setCodeTs(String codeTs) {
        this.codeTs = codeTs;
    }

    /**
     * @return 商品描述
     */
    public String getgDesc() {
        return gDesc;
    }

    /**
     * @param gDesc 商品描述
     */
    public void setgDesc(String gDesc) {
        this.gDesc = gDesc;
    }

    /**
     * @return 单价 成交价格
     */
    public BigDecimal getPrice() {
        return price;
    }

    /**
     * @param price 单价 成交价格
     */
    public void setPrice(BigDecimal price) {
        this.price = price;
    }

    /**
     * @return 数量
     */
    public BigDecimal getgNum() {
        return gNum;
    }

    /**
     * @param gNum 数量
     */
    public void setgNum(BigDecimal gNum) {
        this.gNum = gNum;
    }

    /**
     * @return 成交价格
     */
    public String getgUnit() {
        return gUnit;
    }

    public String getgUnitDisplay() {
        return DictTag.getCargoParamVal(DictConstants.S_NUM_UNIT_E, gUnit, "CODE_C", "NAME_C");
    }

    /**
     * @param gUnit 成交价格
     */
    public void setgUnit(String gUnit) {
        this.gUnit = gUnit;
    }

    /**
     * @return 币制
     */
    public String getCurrCode() {
        return currCode;
    }

    public String getCurrCodeDisplay() {
        return DictTag.getCargoParamVal(DictConstants.S_CURRENCY_E, currCode, "CODE_C", "NAME_C");
    }

    /**
     * @param currCode 币制
     */
    public void setCurrCode(String currCode) {
        this.currCode = currCode;
    }

    /**
     * @return 运保费
     */
    public BigDecimal getFreight() {
        return freight;
    }

    /**
     * @param freight 运保费
     */
    public void setFreight(BigDecimal freight) {
        this.freight = freight;
    }

    /**
     * @return 运费币制
     */
    public String getfCurrCode() {
        return fCurrCode;
    }

    public String getfCurrCodeDisplay() {
        return DictTag.getCargoParamVal(DictConstants.S_CURRENCY_E, fCurrCode, "CODE_C", "NAME_C");
    }

    /**
     * @param fCurrCode 运费币制
     */
    public void setfCurrCode(String fCurrCode) {
        this.fCurrCode = fCurrCode;
    }

    /**
     * @return 订单号
     */
    public String getOrderId() {
        return orderId;
    }

    /**
     * @param orderId 订单号
     */
    public void setOrderId(String orderId) {
        this.orderId = orderId;
    }

    /**
     * @return 电商平台代码
     */
    public String getEbPlatId() {
        return ebPlatId;
    }

    /**
     * @param ebPlatId 电商平台代码
     */
    public void setEbPlatId(String ebPlatId) {
        this.ebPlatId = ebPlatId;
    }

    /**
     * @return 规格型号 品牌、商品描述、规格等
     */
    public String getgModel() {
        return gModel;
    }

    /**
     * @param gModel 规格型号 品牌、商品描述、规格等
     */
    public void setgModel(String gModel) {
        this.gModel = gModel;
    }

    /**
     * @return 总价 单价*数量
     */
    public BigDecimal getTotalPrice() {
        return totalPrice;
    }

    /**
     * @param totalPrice 总价 单价*数量
     */
    public void setTotalPrice(BigDecimal totalPrice) {
        this.totalPrice = totalPrice;
    }

    /**
     * @return 法定数量 进口不填/出口选填
     */
    public BigDecimal getQty1() {
        return qty1;
    }

    /**
     * @param qty1 法定数量 进口不填/出口选填
     */
    public void setQty1(BigDecimal qty1) {
        this.qty1 = qty1;
    }

    /**
     * @return 法定单位 进口不填/出口选填
     */
    public String getUnit1() {
        return unit1;
    }

    public String getUnit1Display() {
        return DictTag.getCargoParamVal(DictConstants.S_LAW_UNIT_E, unit1, "CODE_C", "NAME_C");
    }

    /**
     * @param unit1 法定单位 进口不填/出口选填
     */
    public void setUnit1(String unit1) {
        this.unit1 = unit1;
    }

    /**
     * @return 品牌 进口不填/出口选填
     */
    public String getTradeMark() {
        return tradeMark;
    }

    /**
     * @param tradeMark 品牌 进口不填/出口选填
     */
    public void setTradeMark(String tradeMark) {
        this.tradeMark = tradeMark;
    }

    /**
     * @return 原产国/目的国
     */
    public String getOriginCountry() {
        return originCountry;
    }

    public String getOriginCountryDisplay() {
        return DictTag.getCargoParamVal(DictConstants.S_NATIONS, originCountry, "NATIONCO", "NATIONCN");
    }

    /**
     * @param originCountry 原产国/目的国
     */
    public void setOriginCountry(String originCountry) {
        this.originCountry = originCountry;
    }

    /**
     * @return 用途 进口不填/出口选填
     */
    public String getUseTo() {
        return useTo;
    }

    public String getUseToDisplay() {
        return DictTag.getCargoParamVal(DictConstants.S_PURPOSE, useTo, "PURPOSECO", "PURPOSECN");
    }

    /**
     * @param useTo 用途 进口不填/出口选填
     */
    public void setUseTo(String useTo) {
        this.useTo = useTo;
    }

    /**
     * @return 征免方式 进口不填/出口选填
     */
    public String getDutyMode() {
        return dutyMode;
    }

    public String getDutyModeDisplay() {
        return DictTag.getCargoParamVal(DictConstants.S_DUTY, dutyMode, "DUTYCO", "DUTYCN");
    }

    /**
     * @param dutyMode 征免方式 进口不填/出口选填
     */
    public void setDutyMode(String dutyMode) {
        this.dutyMode = dutyMode;
    }

    /**
     * @return 税款 进口选填/出口不填
     */
    public BigDecimal getTaxPayment() {
        return taxPayment;
    }

    /**
     * @param taxPayment 税款 进口选填/出口不填
     */
    public void setTaxPayment(BigDecimal taxPayment) {
        this.taxPayment = taxPayment;
    }

    /**
     * @return 税率 进口选填/出口不填
     */
    public BigDecimal getTaxRate() {
        return taxRate;
    }

    /**
     * @param taxRate 税率 进口选填/出口不填
     */
    public void setTaxRate(BigDecimal taxRate) {
        this.taxRate = taxRate;
    }

    /**
     * @return 备注
     */
    public String getNote() {
        return note;
    }

    /**
     * @param note 备注
     */
    public void setNote(String note) {
        this.note = note;
    }

    /**
     * @return 业务表主键，根据此字段关联需要显示的商品信息
     */
    public String getRelatedId() {
        return relatedId;
    }

    /**
     * @param relatedId 业务表主键，根据此字段关联需要显示的商品信息
     */
    public void setRelatedId(String relatedId) {
        this.relatedId = relatedId;
    }

    public String getgType() {
        return this.gType;
    }

    public void setgType(final String gType) {
        this.gType = gType;
    }

    public String getEmsGNo() {
        return this.emsGNo;
    }

    public void setEmsGNo(final String emsGNo) {
        this.emsGNo = emsGNo;
    }

    @Override
    public String toString() {
        return "TGoodsListQdc{" +
               "id='" + id + '\'' +
               ", gNo=" + gNo +
               ", gName='" + gName + '\'' +
               ", codeTs=" + codeTs +
               ", gDesc='" + gDesc + '\'' +
               ", price=" + price +
               ", gNum=" + gNum +
               ", gUnit=" + gUnit +
               ", currCode=" + currCode +
               ", freight=" + freight +
               ", fCurrCode=" + fCurrCode +
               ", orderId='" + orderId + '\'' +
               ", ebPlatId='" + ebPlatId + '\'' +
               ", gModel='" + gModel + '\'' +
               ", totalPrice=" + totalPrice +
               ", qty1=" + qty1 +
               ", unit1=" + unit1 +
               ", tradeMark='" + tradeMark + '\'' +
               ", originCountry=" + originCountry +
               ", useTo=" + useTo +
               ", dutyMode=" + dutyMode +
               ", taxPayment=" + taxPayment +
               ", taxRate=" + taxRate +
               ", note='" + note + '\'' +
               ", relatedId='" + relatedId + '\'' +
               ", gType='" + gType + '\'' +
               ", emsGNo='" + emsGNo + '\'' +
               '}';
    }
}
